Amazon Bedrock Knowledge bases のクエリ分解をログから読み解く

Amazon Bedrock Knowledge bases のクエリ分解をログから読み解く

主にログの内容からクエリ分解はどのように行われるのかを読み解いてみました
Clock Icon2024.08.27

こんにちは!AWS 事業本部コンサルティング部のたかくに(@takakuni_)です。

かなり昔なのですが、 Knowledge bases for Amazon Bedrock でクエリ分解をサポートしました。

What's new では「高度な RAG 機能のサポート」とまとまっていますが、そのうちの 1 つの機能となります。

https://aws.amazon.com/jp/about-aws/whats-new/2024/07/knowledge-bases-amazon-bedrock-advanced-rag-capabilities/

今回はクエリ分解機能にフォーカスして、どのような原理で機能しているかをみてみます。

クエリ分解機能とは

クエリ分解機能とは、ナレッジベースへ問い合わせされたクエリを、細かなサブクエリに分解する機能です。

たとえば、次の問い合わせがあったとします。

給与口座を変更したいです。いつまでに何をすればいいですか?

この問いに対して、以下のように細かい問い合わせに分割することがクエリ分解機能です。

  • 給与口座を変更するにはいつまでに何をすればいいですか?
  • 給与口座変更の手続き方法
  • 給与口座変更に必要な書類
  • 給与口座変更の期限

クエリ分解によって、ナレッジベースへ問い合わせたい内容が明確化され、具体的で詳細な情報を効率的に取得できます。

Query configurations - Amazon Bedrock

全体像

忙しい方向けに図を作ってみました。以降はステップバイステップで中身を見てみます。

クエリ分解機能を使ってみる

クエリ分解機能はマネジメントコンソールではサポートおらず、 API 経由でのみ利用できます。今回は Boto3 を利用してクエリ分割を試してみます。

今回の構成図は以下のとおりです。クエリ分解機能で記録されたログを元に、どういった手法で分解されているのか紐解きます。

Untitled.png

利用した Terraform やアプリケーションのコードは以下に格納されています。

https://github.com/takakuni-classmethod/genai-blog/tree/main/knowledge_base_query_decomposition

アプリの実行

簡単ではありますが、以下のコードでクエリの分割機能が利用できます。いくつか質問文を繋げてプロンプトを投げてみます。

import boto3

KNOWLEDGEBASE_ID = "XXXXXXXXXX"  # ナレッジベース ID を記載
model_arn = "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
bedrock_agent = boto3.client("bedrock-agent-runtime", region_name="us-west-2")

prompt = (
    "Amazon Bedrock って何ですか?食べ物ですか?美味しいですか?どこで利用できますか?お高いんでしょう...?"
)

response = bedrock_agent.retrieve_and_generate(
    input={"text": prompt},
    retrieveAndGenerateConfiguration={
        "type": "KNOWLEDGE_BASE",
        "knowledgeBaseConfiguration": {
            "knowledgeBaseId": KNOWLEDGEBASE_ID,
            "modelArn": model_arn,
            "orchestrationConfiguration": {
                "queryTransformationConfiguration": {"type": "QUERY_DECOMPOSITION"}
            },
        },
    },
)
print(response["output"]["text"],flush=False)

関係のない(食べ物系の)質問は全部無視され、関係ある質問はうまく回答できていますね。

takakuni@ app % python index.py
Amazon Bedrockは、高性能な基盤モデル(FMs)を提供する完全マネージド型サービスです。主要なAIスタートアップやAmazonから提供される基盤モデルを統一されたAPIを通じて利用できます。幅広い基盤モデルから、ユースケースに最適なモデルを選択することができます。

Bedrockの主な特徴は以下の通りです:

1. セキュリティ、プライバシー、責任あるAIを考慮した生成AIアプリケーションの構築が可能
2. トップクラスの基盤モデルを簡単に実験・評価できる
3. ファインチューニングや検索拡張生成(RAG)などの技術を使用して、独自のデータでモデルをカスタマイズ可能
4. エンタープライズシステムやデータソースを使用してタスクを実行するエージェントの構築が可能

Amazon Bedrockはサーバーレスの体験を提供し、インフラストラクチャを管理する必要なく、迅速に開始し、基盤モデルを独自のデータでプライベートにカスタマイズし、AWSツールを使用してアプリケーションに簡単かつ安全に統合・デプロイすることができます。 Amazon Bedrockの利用方法については、以下のポイントが重要です:

1. 料金体系:入力トークンと出力トークンの量に基づいて課金されます。また、モデルのプロビジョニングされたスループットを購入しているかどうかによっても料金が変わります。

2. モデルの選択:Amazon Bedrock consoleの「Model providers」ページで、各モデルの詳細情報や価格を確認できます。

3. 機能の利用:基盤モデルを使用して、様々な機能を探索できます。ただし、地域によって利用可能な機能に制限がある場合があります。

4. セキュリティとプライバシー:独自のデータを使用してモデルをプライベートにカスタマイズし、セキュアに統合・デプロイすることができます。

5. ガードレール:不適切または望ましくないコンテンツを防ぐために、生成AIアプリケーションにセーフガードを実装できます。

詳細な価格情報やプロビジョニングされたスループットについては、Amazon Bedrock Pricingページを参照することをお勧めします。

ログを見てみる

それでは、ログを見てみましょう。

クエリの変換/分解

初めにクエリの分解が行われます

You are a query generation agent. Given the conversation history (optional) and a user question, your task is to determine the optimal queries.

You should consider the following two steps:
Step 1. If conversation history is available, decide if the user question misses any necessary context. If so, rewrite the user question to be a standalone question that captures the relevant context from the given conversation history.
Step 2. Decide if the standalone question is a complex question. If so, decompose it into a set of relevant queries, which can be easier to answer.

Please pay attention to the conversation history. If the user question is already a standalone question, you can skip Step 1.
If the standalone question does not require a further decomposition, you can skip Step 2.

Here’s an example for Step 1:

<example>
Input:
<conversation_history>
<conversation>
<question>How many vehicles can I include in a quote in Kansas</question>
<answer>You can include 5 vehicles in a quote if you live in Kansas</answer>
</conversation>
</conversation_history>

User: What about texas?

Output:
<generated_queries><standalone_question>How many vehicles can be included in a quote in Texas?<standalone_question></generated_queries>
</example>

Here are two examples for Step 2:

<example>
Input:

User: Were both of the following rock groups formed in California: Dig and Thinking Fellers Union Local 282?

Output:
<generated_queries><standalone_question>Were both of the following rock groups formed in California: Dig and Thinking Fellers Union Local 282?</standalone_question><query>What is the formation place of rock group Dig?</query><query>What is the formation place of the rock group Thinking Fellers Union Local 282?</query></generated_queries>
</example>

<example>
Input:

User: in 2018 , what percentage of undeveloped acres were located in the u.s?

Output:
<generated_queries><standalone_question>in 2018 , what percentage of undeveloped acres were located in the u.s?</standalone_question><query>the net undeveloped acres in 2018 of u.s.</query><query>the total net undeveloped acres in 2018</query></generated_queries>
</example>

Here is the current conversation history:
<conversation_history>

</conversation_history>

Please output your response between <generated_queries> </generated_queries> tags, the standalone question within <standalone_question> </standalone_question> and each decomposed query within <query> </query> tags.

和訳すると、次のような指示が渡されています。どうやら関係ない質問は「Amazon Bedrock って何ですか?」にまとめられたようですね。

質問は standalone_question と複数の query に変換する指示をしています。

あなたはクエリ生成エージェントです。会話履歴(オプション)とユーザーの質問が与えられたとき、最適なクエリを決定することがあなたの任務です。

以下の2つのステップを考慮する必要があります:
ステップ1. 会話履歴が利用可能な場合、ユーザーの質問に必要なコンテキストが欠けていないか判断します。もし欠けている場合は、与えられた会話履歴から関連するコンテキストを捉えた独立した質問に書き直します。
ステップ2. 独立した質問が複雑な質問かどうかを判断します。もしそうであれば、それを回答しやすい関連クエリのセットに分解します。

会話履歴に注意を払ってください。ユーザーの質問がすでに独立した質問である場合は、ステップ1をスキップできます。
独立した質問がさらなる分解を必要としない場合は、ステップ2をスキップできます。

ステップ1の例を以下に示します:

<example>
Input:
<conversation_history>
<conversation>
<question>カンザス州では何台の車両を見積もりに含めることができますか</question>
<answer>カンザス州に住んでいる場合、見積もりに5台の車両を含めることができます</answer>
</conversation>
</conversation_history>

ユーザー:テキサス州ではどうですか?

出力:
<generated_queries><standalone_question>テキサス州では見積もりに何台の車両を含めることができますか?<standalone_question></generated_queries>
</example>

ステップ2の例を2つ示します:

<example>
Input:

ユーザー:DigとThinking Fellers Union Local 282の両方のロックグループはカリフォルニアで結成されましたか?

Output:
<generated_queries><standalone_question>DigとThinking Fellers Union Local 282の両方のロックグループはカリフォルニアで結成されましたか?</standalone_question><query>ロックグループDigの結成地はどこですか?</query><query>ロックグループThinking Fellers Union Local 282の結成地はどこですか?</query></generated_queries>
</example>

<example>
Input:

ユーザー:2018年に、未開発エーカーの何パーセントが米国に位置していましたか?

Output:
<generated_queries><standalone_question>2018年に、未開発エーカーの何パーセントが米国に位置していましたか?</standalone_question><query>2018年の米国の純未開発エーカー数</query><query>2018年の総純未開発エーカー数</query></generated_queries>
</example>

現在の会話履歴は以下の通りです:
<conversation_history>

</conversation_history>

回答は<generated_queries> </generated_queries>タグの間に出力し、独立した質問は<standalone_question> </standalone_question>タグの中に、各分解されたクエリは<query> </query>タグの中に入れてください。

「Amazon Bedrock って何ですか?食べ物ですか?美味しいですか?どこで利用できますか?お高いんでしょう...?」は最終的に以下に変換されました。

  • スダンドアロンクエスチョン:Amazon Bedrock とは何か、その特徴と利用方法について教えてください。
  • サブクエリ:Amazon Bedrock とは何ですか?
  • サブクエリ:Amazon Bedrock の主な特徴は何ですか?
  • サブクエリ:Amazon Bedrock はどこで利用できますか?
  • サブクエリ:Amazon Bedrock の料金体系はどうなっていますか?
ログの内容
クエリの分解フェーズ.json
{
    "schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "XXXX",
    "accountId": "account_id",
    "identity": {
        "arn": "arn:aws:sts::account_id:assumed-role/takakuni/botocore-session"
    },
    "region": "us-west-2",
    "requestId": "XXXX",
    "operation": "Converse",
    "modelId": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
    "input": {
        "inputContentType": "application/json",
        "inputBodyJson": {
            "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "text": "Amazon Bedrock って何ですか?食べ物ですか?美味しいですか?どこで利用できますか?お高いんでしょう...?"
                        }
                    ]
                }
            ],
            "system": [
                {
                    "text": "You are a query generation agent. Given the conversation history (optional) and a user question, your task is to determine the optimal queries.\n\nYou should consider the following two steps:\nStep 1. If conversation history is available, decide if the user question misses any necessary context. If so, rewrite the user question to be a standalone question that captures the relevant context from the given conversation history.\nStep 2. Decide if the standalone question is a complex question. If so, decompose it into a set of relevant queries, which can be easier to answer.\n\nPlease pay attention to the conversation history. If the user question is already a standalone question, you can skip Step 1.\nIf the standalone question does not require a further decomposition, you can skip Step 2.\n\nHere’s an example for Step 1:\n\n<example>\nInput:\n<conversation_history>\n<conversation>\n<question>How many vehicles can I include in a quote in Kansas</question>\n<answer>You can include 5 vehicles in a quote if you live in Kansas</answer>\n</conversation>\n</conversation_history>\n\nUser: What about texas?\n\nOutput:\n<generated_queries><standalone_question>How many vehicles can be included in a quote in Texas?<standalone_question></generated_queries>\n</example>\n\nHere are two examples for Step 2:\n\n<example>\nInput:\n\nUser: Were both of the following rock groups formed in California: Dig and Thinking Fellers Union Local 282?\n\nOutput:\n<generated_queries><standalone_question>Were both of the following rock groups formed in California: Dig and Thinking Fellers Union Local 282?</standalone_question><query>What is the formation place of rock group Dig?</query><query>What is the formation place of the rock group Thinking Fellers Union Local 282?</query></generated_queries>\n</example>\n\n<example>\nInput:\n\nUser: in 2018 , what percentage of undeveloped acres were located in the u.s?\n\nOutput:\n<generated_queries><standalone_question>in 2018 , what percentage of undeveloped acres were located in the u.s?</standalone_question><query>the net undeveloped acres in 2018 of u.s.</query><query>the total net undeveloped acres in 2018</query></generated_queries>\n</example>\n\nHere is the current conversation history:\n<conversation_history>\n\n</conversation_history>\n\nPlease output your response between <generated_queries> </generated_queries> tags, the standalone question within <standalone_question> </standalone_question> and each decomposed query within <query> </query> tags.\n"
                }
            ],
            "inferenceConfig": {
                "maxTokens": 2048,
                "temperature": 0,
                "topP": 1,
                "stopSequences": [
                    "\nObservation"
                ]
            }
        },
        "inputTokenCount": 652
    },
    "output": {
        "outputContentType": "application/json",
        "outputBodyJson": {
            "output": {
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "text": "<generated_queries>\n<standalone_question>Amazon Bedrock とは何か、その特徴と利用方法について教えてください。</standalone_question>\n<query>Amazon Bedrock とは何ですか?</query>\n<query>Amazon Bedrock の主な特徴は何ですか?</query>\n<query>Amazon Bedrock はどこで利用できますか?</query>\n<query>Amazon Bedrock の料金体系はどうなっていますか?</query>\n</generated_queries>"
                        }
                    ]
                }
            },
            "stopReason": "end_turn",
            "metrics": {
                "latencyMs": 2675
            },
            "usage": {
                "inputTokens": 652,
                "outputTokens": 136,
                "totalTokens": 788
            }
        },
        "outputTokenCount": 136
    }
}

エンべディング

続いて、スタンドアロンクエスチョンと付随するサブクエリ毎にエンべディングが行われます。

※ エンべディングのログ部分は省略しました。

Amazon Bedrock とは何か、その特徴と利用方法について教えてください。.json
{
	"schemaType": "ModelInvocationLog",
	"schemaVersion": "1.0",
	"timestamp": "XXXX",
	"accountId": "account_id",
	"identity": {
		"arn": "arn:aws:sts::account_id:assumed-role/kb-role/BedrockQueryKnowledgeBaseSession-Q4SB348JFV"
	},
	"region": "us-west-2",
	"requestId": "XXXX",
	"operation": "InvokeModel",
	"modelId": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
	"input": {
		"inputContentType": "application/json",
		"inputBodyJson": {
			"inputText": "Amazon Bedrock とは何か、その特徴と利用方法について教えてください。",
			"dimensions": 1024
		},
		"inputTokenCount": 28
	},
	"output": {
		"outputContentType": "application/json",
		"outputBodyJson": {
			"embedding": [
				-0.101620264
			],
			"inputTextTokenCount": 28
		}
	}
}
Amazon Bedrock の料金体系はどうなっていますか?.json
{
    "schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "XXXX",
    "accountId": "account_id",
    "identity": {
        "arn": "arn:aws:sts::account_id:assumed-role/kb-role/BedrockQueryKnowledgeBaseSession-Q4SB348JFV"
    },
    "region": "us-west-2",
    "requestId": "XXXX",
    "operation": "InvokeModel",
    "modelId": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
    "input": {
        "inputContentType": "application/json",
        "inputBodyJson": {
            "inputText": "Amazon Bedrock の料金体系はどうなっていますか?",
            "dimensions": 1024
        },
        "inputTokenCount": 17
    },
    "output": {
        "outputContentType": "application/json",
        "outputBodyJson": {
            "embedding": [
                -0.110757194,
            ],
            "inputTextTokenCount": 17
        }
    }
}
Amazon Bedrock とは何ですか?.json
{
	"schemaType": "ModelInvocationLog",
	"schemaVersion": "1.0",
	"timestamp": "XXXX",
	"accountId": "account_id",
	"identity": {
		"arn": "arn:aws:sts::account_id:assumed-role/kb-role/BedrockQueryKnowledgeBaseSession-Q4SB348JFV"
	},
	"region": "us-west-2",
	"requestId": "XXXX",
	"operation": "InvokeModel",
	"modelId": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
	"input": {
		"inputContentType": "application/json",
		"inputBodyJson": {
			"inputText": "Amazon Bedrock とは何ですか?",
			"dimensions": 1024
		},
		"inputTokenCount": 11
	},
	"output": {
		"outputContentType": "application/json",
		"outputBodyJson": {
			"embedding": [
				-0.10380128
			],
			"inputTextTokenCount": 11
		}
	}
}
Amazon Bedrock はどこで利用できますか?.json
{
	"schemaType": "ModelInvocationLog",
	"schemaVersion": "1.0",
	"timestamp": "XXXX",
	"accountId": "account_id",
	"identity": {
		"arn": "arn:aws:sts::account_id:assumed-role/kb-role/BedrockQueryKnowledgeBaseSession-Q4SB348JFV"
	},
	"region": "us-west-2",
	"requestId": "XXXX",
	"operation": "InvokeModel",
	"modelId": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
	"input": {
		"inputContentType": "application/json",
		"inputBodyJson": {
			"inputText": "Amazon Bedrock はどこで利用できますか?",
			"dimensions": 1024
		},
		"inputTokenCount": 16
	},
	"output": {
		"outputContentType": "application/json",
		"outputBodyJson": {
			"embedding": [
				-0.09027505
			],
			"inputTextTokenCount": 16
		}
	}
}
Amazon Bedrock の主な特徴は何ですか?.json
{
	"schemaType": "ModelInvocationLog",
	"schemaVersion": "1.0",
	"timestamp": "XXXX",
	"accountId": "account_id",
	"identity": {
		"arn": "arn:aws:sts::account_id:assumed-role/kb-role/BedrockQueryKnowledgeBaseSession-Q4SB348JFV"
	},
	"region": "us-west-2",
	"requestId": "XXXX",
	"operation": "InvokeModel",
	"modelId": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
	"input": {
		"inputContentType": "application/json",
		"inputBodyJson": {
			"inputText": "Amazon Bedrock の主な特徴は何ですか?",
			"dimensions": 1024
		},
		"inputTokenCount": 15
	},
	"output": {
		"outputContentType": "application/json",
		"outputBodyJson": {
			"embedding": [
				-0.11705649
			],
			"inputTextTokenCount": 15
		}
	}
}

回答生成

最後に回答生成フェーズです。テキスト生成モデルによって、エンべディング、ベクトル検索の結果を元に回答を生成します。

messages から User ロールに、スタンドアロンクエスチョンが入力されていますね。

回答生成フェーズ.json
{
    "schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "XXXX",
    "accountId": "account_id",
    "identity": {
        "arn": "arn:aws:sts::account_id:assumed-role/takakuni/botocore-session"
    },
    "region": "us-west-2",
    "requestId": "XXXX",
    "operation": "Converse",
    "modelId": "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0",
    "input": {
        "inputContentType": "application/json",
        "inputBodyJson": {
            "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "text": "Amazon Bedrock とは何か、その特徴と利用方法について教えてください。"
                        }
                    ]
                }
            ],
            "system": [
                {
                    "text": "You are a question answering agent. I will provide you with a set of search results. The user will provide you with a question. Your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.\n\nHere are the search results in numbered order:\n<search_results>\n<search_result>\n<content>\nHow charges are calculated for Guardrails for Amazon Bedrock   Charges for Guardrails for Amazon Bedrock will be incurred only for the policies configured in the  guardrail. The price for each policy type is available at  Amazon Bedrock Pricing. If guardrails blocks  the input prompt, you will be charged for the guardrail evaluation. There will be no charges for  foundation model inference calls. If guardrails blocks the model response, you will be charged for  guardrails evaluation of the input prompt and the model response. In this case, you will be charged  for the foundation model inference calls as well the model response that was generated prior to  guardrails evaluation.   How charges are calculated 298    https://aws.amazon.com/bedrock/pricing/  https://aws.amazon.com/bedrock/pricing/      Amazon Bedrock User Guide   Supported regions and models for Guardrails for Amazon  Bedrock   Guardrails for Amazon Bedrock is supported in the following regions:   Region   US East (N. Virginia)   US West (Oregon)   AWS GovCloud (US-West)   Canada (Central)   South America (São Paulo)   Europe (Frankfurt)   Europe (Ireland) (gated access)   Europe (London)   Europe (Paris)   Asia Pacific (Singapore) (gated access)   Asia Pacific (Tokyo)   Asia Pacific (Sydney)   Asia Pacific (Mumbai)   You\n</content>\n<source>\n1\n</source>\n</search_result>\n<search_result>\n<content>\n............................................ 1247 Learn more about AWS CloudFormation .......................................................................................... 1248   Quotas ........................................................................................................................................ 1249 API reference ............................................................................................................................. 1273 Document history ...................................................................................................................... 1274 AWS Glossary ............................................................................................................................. 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.\n</content>\n<source>\n2\n</source>\n</search_result>\n<search_result>\n<content>\n...................................................................................................................... 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.   Topics   • Features of Amazon Bedrock   • Amazon Bedrock pricing   • Supported AWS Regions   • Key definitions   Features of Amazon Bedrock   Take advantage of Amazon Bedrock foundation models to explore the following capabilities. To see  feature limitations by Region, see Model support by AWS Region.\n</content>\n<source>\n3\n</source>\n</search_result>\n<search_result>\n<content>\nNote   Model evaluation is in preview release for Amazon Bedrock and is subject to change.   • Prevent inappropriate or unwanted content – Use guardrails to implement safeguards for your  generative AI applications.   Amazon Bedrock pricing   When you sign up for AWS, your AWS account is automatically signed up for all services in AWS,  including Amazon Bedrock. However, you are charged only for the services that you use.   To see your bill, go to the Billing and Cost Management Dashboard in the AWS Billing and Cost  Management console. To learn more about AWS account billing, see the AWS Billing User Guide. If  you have questions concerning AWS billing and AWS accounts, contact AWS Support.   With Amazon Bedrock, you pay to run inference on any of the third-party foundation models.  Pricing is based on the volume of input tokens and output tokens, and on whether you have  purchased provisioned throughput for the model. For more information, see the Model providers page in the Amazon Bedrock console. For each model, pricing is listed following the model version.  For more information about purchasing Provisioned Throughput, see Provisioned Throughput for  Amazon Bedrock.   For more information, see Amazon Bedrock Pricing.\n</content>\n<source>\n4\n</source>\n</search_result>\n<search_result>\n<content>\n......... 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.   Topics   • Features of Amazon Bedrock   • Amazon Bedrock pricing   • Supported AWS Regions   • Key definitions   Features of Amazon Bedrock   Take advantage of Amazon Bedrock foundation models to explore the following capabilities. To see  feature limitations by Region, see Model support by AWS Region.\n</content>\n<source>\n5\n</source>\n</search_result>\n\n</search_results>\n\nYou should provide your answer without any inline citations or references to specific sources within the answer text itself. Do not include phrases like \"according to source X\", \"[1]\", \"[source 2, 3]\", etc within your <text> tags.\n\nHowever, you should include <sources> tags at the end of each <answer_part> to specify which source(s) the information came from.\nNote that <sources> may contain multiple <source> if you include information from multiple results in your answer.\n\nDo NOT directly quote the <search_results> in your answer. Your job is to answer the user's question as concisely as possible.\n\nYou must output your answer in the following format. Pay attention and follow the formatting and spacing exactly:\n<answer>\n<answer_part>\n<text>\nfirst answer text\n</text>\n<sources>\n<source>source ID</source>\n</sources>\n</answer_part>\n<answer_part>\n<text>\nsecond answer text\n</text>\n<sources>\n<source>source ID</source>\n</sources>\n</answer_part>\n</answer>\n"
                }
            ],
            "inferenceConfig": {
                "maxTokens": 2048,
                "temperature": 0,
                "topP": 1,
                "stopSequences": [
                    "\nObservation"
                ]
            }
        },
        "inputTokenCount": 2068
    },
    "output": {
        "outputContentType": "application/json",
        "outputBodyJson": {
            "output": {
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "text": "<answer>\n<answer_part>\n<text>\nAmazon Bedrockは、高性能な基盤モデル(FMs)を提供する完全マネージド型サービスです。主要なAIスタートアップやAmazonから提供される基盤モデルを統一されたAPIを通じて利用できます。幅広い基盤モデルから、ユースケースに最適なモデルを選択することができます。\n\nBedrockの主な特徴は以下の通りです:\n\n1. セキュリティ、プライバシー、責任あるAIを考慮した生成AIアプリケーションの構築が可能\n2. トップクラスの基盤モデルを簡単に実験・評価できる\n3. ファインチューニングや検索拡張生成(RAG)などの技術を使用して、独自のデータでモデルをカスタマイズ可能\n4. エンタープライズシステムやデータソースを使用してタスクを実行するエージェントの構築が可能\n\nAmazon Bedrockはサーバーレスの体験を提供し、インフラストラクチャを管理する必要なく、迅速に開始し、基盤モデルを独自のデータでプライベートにカスタマイズし、AWSツールを使用してアプリケーションに簡単かつ安全に統合・デプロイすることができます。\n</text>\n<sources>\n<source>2</source>\n<source>3</source>\n</sources>\n</answer_part>\n<answer_part>\n<text>\nAmazon Bedrockの利用方法については、以下のポイントが重要です:\n\n1. 料金体系:入力トークンと出力トークンの量に基づいて課金されます。また、モデルのプロビジョニングされたスループットを購入しているかどうかによっても料金が変わります。\n\n2. モデルの選択:Amazon Bedrock consoleの「Model providers」ページで、各モデルの詳細情報や価格を確認できます。\n\n3. 機能の利用:基盤モデルを使用して、様々な機能を探索できます。ただし、地域によって利用可能な機能に制限がある場合があります。\n\n4. セキュリティとプライバシー:独自のデータを使用してモデルをプライベートにカスタマイズし、セキュアに統合・デプロイすることができます。\n\n5. ガードレール:不適切または望ましくないコンテンツを防ぐために、生成AIアプリケーションにセーフガードを実装できます。\n\n詳細な価格情報やプロビジョニングされたスループットについては、Amazon Bedrock Pricingページを参照することをお勧めします。\n</text>\n<sources>\n<source>3</source>\n<source>4</source>\n</sources>\n</answer_part>\n</answer>"
                        }
                    ]
                }
            },
            "stopReason": "end_turn",
            "metrics": {
                "latencyMs": 15765
            },
            "usage": {
                "inputTokens": 2068,
                "outputTokens": 837,
                "totalTokens": 2905
            }
        },
        "outputTokenCount": 837
    }
}

回答生成のプロンプトを見てみましょう。

You are a question answering agent. I will provide you with a set of search results. The user will provide you with a question. Your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.

Here are the search results in numbered order:
<search_results>
<search_result>
<content>
How charges are calculated for Guardrails for Amazon Bedrock   Charges for Guardrails for Amazon Bedrock will be incurred only for the policies configured in the  guardrail. The price for each policy type is available at  Amazon Bedrock Pricing. If guardrails blocks  the input prompt, you will be charged for the guardrail evaluation. There will be no charges for  foundation model inference calls. If guardrails blocks the model response, you will be charged for  guardrails evaluation of the input prompt and the model response. In this case, you will be charged  for the foundation model inference calls as well the model response that was generated prior to  guardrails evaluation.   How charges are calculated 298    https://aws.amazon.com/bedrock/pricing/  https://aws.amazon.com/bedrock/pricing/      Amazon Bedrock User Guide   Supported regions and models for Guardrails for Amazon  Bedrock   Guardrails for Amazon Bedrock is supported in the following regions:   Region   US East (N. Virginia)   US West (Oregon)   AWS GovCloud (US-West)   Canada (Central)   South America (São Paulo)   Europe (Frankfurt)   Europe (Ireland) (gated access)   Europe (London)   Europe (Paris)   Asia Pacific (Singapore) (gated access)   Asia Pacific (Tokyo)   Asia Pacific (Sydney)   Asia Pacific (Mumbai)   You
</content>
<source>
1
</source>
</search_result>
<search_result>
<content>
............................................ 1247 Learn more about AWS CloudFormation .......................................................................................... 1248   Quotas ........................................................................................................................................ 1249 API reference ............................................................................................................................. 1273 Document history ...................................................................................................................... 1274 AWS Glossary ............................................................................................................................. 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.
</content>
<source>
2
</source>
</search_result>
<search_result>
<content>
...................................................................................................................... 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.   Topics   • Features of Amazon Bedrock   • Amazon Bedrock pricing   • Supported AWS Regions   • Key definitions   Features of Amazon Bedrock   Take advantage of Amazon Bedrock foundation models to explore the following capabilities. To see  feature limitations by Region, see Model support by AWS Region.
</content>
<source>
3
</source>
</search_result>
<search_result>
<content>
Note   Model evaluation is in preview release for Amazon Bedrock and is subject to change.   • Prevent inappropriate or unwanted content – Use guardrails to implement safeguards for your  generative AI applications.   Amazon Bedrock pricing   When you sign up for AWS, your AWS account is automatically signed up for all services in AWS,  including Amazon Bedrock. However, you are charged only for the services that you use.   To see your bill, go to the Billing and Cost Management Dashboard in the AWS Billing and Cost  Management console. To learn more about AWS account billing, see the AWS Billing User Guide. If  you have questions concerning AWS billing and AWS accounts, contact AWS Support.   With Amazon Bedrock, you pay to run inference on any of the third-party foundation models.  Pricing is based on the volume of input tokens and output tokens, and on whether you have  purchased provisioned throughput for the model. For more information, see the Model providers page in the Amazon Bedrock console. For each model, pricing is listed following the model version.  For more information about purchasing Provisioned Throughput, see Provisioned Throughput for  Amazon Bedrock.   For more information, see Amazon Bedrock Pricing.
</content>
<source>
4
</source>
</search_result>
<search_result>
<content>
......... 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.   Topics   • Features of Amazon Bedrock   • Amazon Bedrock pricing   • Supported AWS Regions   • Key definitions   Features of Amazon Bedrock   Take advantage of Amazon Bedrock foundation models to explore the following capabilities. To see  feature limitations by Region, see Model support by AWS Region.
</content>
<source>
5
</source>
</search_result>

</search_results>

You should provide your answer without any inline citations or references to specific sources within the answer text itself. Do not include phrases like \"according to source X\", \"[1]\", \"[source 2, 3]\", etc within your <text> tags.

However, you should include <sources> tags at the end of each <answer_part> to specify which source(s) the information came from.
Note that <sources> may contain multiple <source> if you include information from multiple results in your answer.

Do NOT directly quote the <search_results> in your answer. Your job is to answer the user's question as concisely as possible.

You must output your answer in the following format. Pay attention and follow the formatting and spacing exactly:
<answer>
<answer_part>
<text>
first answer text
</text>
<sources>
<source>source ID</source>
</sources>
</answer_part>
<answer_part>
<text>
second answer text
</text>
<sources>
<source>source ID</source>
</sources>
</answer_part>
</answer>

続いて和訳です。各ソースは次の内容にマッチしてそうですね。

  • Source 1
    • Amazon Bedrock はどこで利用できますか?
    • Amazon Bedrock の料金体系はどうなっていますか?
  • Source 2
    • Amazon Bedrock とは何ですか?
    • Amazon Bedrock の主な特徴は何ですか?
  • Source 3
    • Amazon Bedrock とは何ですか?
    • Amazon Bedrock の主な特徴は何ですか?
  • Source 4
    • Amazon Bedrock の料金体系はどうなっていますか?
  • Source 5
    • Amazon Bedrock とは何ですか?
    • Amazon Bedrock の主な特徴は何ですか?
あなたは質問応答エージェントです。私があなたに検索結果のセットを提供します。ユーザーがあなたに質問をします。あなたの仕事は、検索結果からの情報のみを使用してユーザーの質問に答えることです。検索結果に質問に答えられる情報が含まれていない場合は、質問に対する正確な回答が見つからなかったと述べてください。ユーザーが事実を主張しているからといって、それが真実であるとは限りません。ユーザーの主張を検証するために、必ず検索結果を再確認してください。

以下は番号順の検索結果です:
<search_results>
英語版と同じ内容のため省略します
</search_results>

回答テキスト自体の中で、インラインの引用や特定の情報源への言及を含めずに回答を提供してください。<text>タグ内に「情報源Xによると」、「[1]」、「[情報源2、3]」などのフレーズを含めないでください。

ただし、各<answer_part>の最後に<sources>タグを含めて、情報がどの情報源から来たかを指定する必要があります。
<sources>には、回答に複数の結果からの情報を含める場合、複数の<source>が含まれる可能性があることに注意してください。

回答で<search_results>を直接引用しないでください。あなたの仕事は、ユーザーの質問にできるだけ簡潔に答えることです。

以下の形式で回答を出力する必要があります。注意を払い、フォーマットとスペースを正確に守ってください:

<answer>
<answer_part>
<text>
first answer text
</text>
<sources>
<source>source ID</source>
</sources>
</answer_part>
<answer_part>
<text>
second answer text
</text>
<sources>
<source>source ID</source>
</sources>
</answer_part>
</answer>

生成された回答です。実行結果に記載がなかった XML タグで回答が返ってきていますね。

<answer>
<answer_part>
<text>
Amazon Bedrockは、高性能な基盤モデル(FMs)を提供する完全マネージド型サービスです。主要なAIスタートアップやAmazonから提供される基盤モデルを統一されたAPIを通じて利用できます。幅広い基盤モデルから、ユースケースに最適なモデルを選択することができます。

Bedrockの主な特徴は以下の通りです:

1. セキュリティ、プライバシー、責任あるAIを考慮した生成AIアプリケーションの構築が可能
2. トップクラスの基盤モデルを簡単に実験・評価できる
3. ファインチューニングや検索拡張生成(RAG)などの技術を使用して、独自のデータでモデルをカスタマイズ可能
4. エンタープライズシステムやデータソースを使用してタスクを実行するエージェントの構築が可能

Amazon Bedrockはサーバーレスの体験を提供し、インフラストラクチャを管理する必要なく、迅速に開始し、基盤モデルを独自のデータでプライベートにカスタマイズし、AWSツールを使用してアプリケーションに簡単かつ安全に統合・デプロイすることができます。
</text>
<sources>
<source>2</source>
<source>3</source>
</sources>
</answer_part>
<answer_part>
<text>
Amazon Bedrockの利用方法については、以下のポイントが重要です:

1. 料金体系:入力トークンと出力トークンの量に基づいて課金されます。また、モデルのプロビジョニングされたスループットを購入しているかどうかによっても料金が変わります。

2. モデルの選択:Amazon Bedrock consoleの「Model providers」ページで、各モデルの詳細情報や価格を確認できます。

3. 機能の利用:基盤モデルを使用して、様々な機能を探索できます。ただし、地域によって利用可能な機能に制限がある場合があります。

4. セキュリティとプライバシー:独自のデータを使用してモデルをプライベートにカスタマイズし、セキュアに統合・デプロイすることができます。

5. ガードレール:不適切または望ましくないコンテンツを防ぐために、生成AIアプリケーションにセーフガードを実装できます。

詳細な価格情報やプロビジョニングされたスループットについては、Amazon Bedrock Pricingページを参照することをお勧めします。
</text>
<sources>
<source>3</source>
<source>4</source>
</sources>
</answer_part>
</answer>

response を全部見てみる

最後に response の中身を全部出してみました。

index.py
import boto3

KNOWLEDGEBASE_ID = "XXXXXXXXXX"  # ナレッジベース ID を記載
model_arn = "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0"
bedrock_agent = boto3.client("bedrock-agent-runtime", region_name="us-west-2")

prompt = (
    "Amazon Bedrock って何ですか?食べ物ですか?美味しいですか?どこで利用できますか?お高いんでしょう...?"
)

response = bedrock_agent.retrieve_and_generate(
    input={"text": prompt},
    retrieveAndGenerateConfiguration={
        "type": "KNOWLEDGE_BASE",
        "knowledgeBaseConfiguration": {
            "knowledgeBaseId": KNOWLEDGEBASE_ID,
            "modelArn": model_arn,
            "orchestrationConfiguration": {
                "queryTransformationConfiguration": {"type": "QUERY_DECOMPOSITION"}
            },
        },
    },
)
+ print(response,flush=False)
- print(response["output"]["text"],flush=False)

引用元が異なるため、 citations には回答/引用ごとに分割されて応答してますね。素晴らしい。

{
	"ResponseMetadata": {
		"requestId": "XXXX",
		"HTTPStatusCode": 200,
		"HTTPHeaders": {
			"date": "Tue, 27 Aug 2024 10:57:21 GMT",
			"content-type": "application/json",
			"content-length": "9336",
			"connection": "keep-alive",
			"x-amzn-requestid": "XXXX"
		},
		"RetryAttempts": 0
	},
	"citations": [
		{
			"generatedResponsePart": {
				"textResponsePart": {
					"span": { "end": 339, "start": 0 },
					"text": "Amazon Bedrockは、高性能な基盤モデル(FMs)を提供する完全マネージド型サービスです。主要なAIスタートアップやAmazonから、統一されたAPIを通じて利用可能な幅広い基盤モデルを選択できます。セキュリティ、プライバシー、責任あるAIを備えた生成AIアプリケーションを構築するための幅広い機能を提供しています。\n\nBedrockの主な特徴には以下が含まれます:\n\n1. 様々な基盤モデルの実験と評価が可能\n2. 独自のデータを使用したモデルのカスタマイズ(ファインチューニングやRAGなど)\n3. エンタープライズシステムやデータソースを使用したタスク実行エージェントの構築\n4. サーバーレス体験による迅速な開始と容易な統合\n5. インフラストラクチャ管理が不要"
				}
			},
			"retrievedReferences": [
				{
					"content": {
						"text": "............................................ 1247 Learn more about AWS CloudFormation .......................................................................................... 1248   Quotas ........................................................................................................................................ 1249 API reference ............................................................................................................................. 1273 Document history ...................................................................................................................... 1274 AWS Glossary ............................................................................................................................. 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure."
					},
					"location": {
						"s3Location": {
							"uri": "s3://bucket/bedrock/bedrock-ug.pdf"
						},
						"type": "S3"
					},
					"metadata": {
						"x-amz-bedrock-kb-source-uri": "s3://bucket/bedrock/bedrock-ug.pdf",
						"x-amz-bedrock-kb-data-source-id": "XXXXXXXXXX"
					}
				},
				{
					"content": {
						"text": "...................................................................................................................... 1285   xiii        Amazon Bedrock User Guide   What is Amazon Bedrock?   Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs)  from leading AI startups and Amazon available for your use through a unified API. You can choose  from a wide range of foundation models to find the model that is best suited for your use case.  Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with  security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and  evaluate top foundation models for your use cases, privately customize them with your data using  techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that  execute tasks using your enterprise systems and data sources.   With Amazon Bedrock's serverless experience, you can get started quickly, privately customize  foundation models with your own data, and easily and securely integrate and deploy them into  your applications using AWS tools without having to manage any infrastructure.   Topics   • Features of Amazon Bedrock   • Amazon Bedrock pricing   • Supported AWS Regions   • Key definitions   Features of Amazon Bedrock   Take advantage of Amazon Bedrock foundation models to explore the following capabilities. To see  feature limitations by Region, see Model support by AWS Region."
					},
					"location": {
						"s3Location": {
							"uri": "s3://bucket名/bedrock/bedrock-ug.pdf"
						},
						"type": "S3"
					},
					"metadata": {
						"x-amz-bedrock-kb-source-uri": "s3://bucket/bedrock/bedrock-ug.pdf",
						"x-amz-bedrock-kb-data-source-id": "XXXXXXXXXX"
					}
				}
			]
		},
		{
			"generatedResponsePart": {
				"textResponsePart": {
					"span": { "end": 681, "start": 341 },
					"text": "Amazon Bedrockの利用方法については、以下のポイントが重要です:\n\n1. AWSアカウントを持っていれば、自動的にAmazon Bedrockを含むすべてのサービスにサインアップされます。\n2. 料金は使用したサービスに対してのみ発生します。\n3. 第三者の基盤モデルを使用して推論を実行する際に課金されます。\n4. 料金は入力トークンと出力トークンの量、およびモデルのプロビジョニングされたスループットの購入有無に基づいて決定されます。\n5. 各モデルの価格は、Amazon Bedrockコンソールの「Model providers」ページで確認できます。\n\n詳細な料金情報については、Amazon Bedrock Pricingページを参照することをお勧めします。"
				}
			},
			"retrievedReferences": [
				{
					"content": {
						"text": "Note   Model evaluation is in preview release for Amazon Bedrock and is subject to change.   • Prevent inappropriate or unwanted content – Use guardrails to implement safeguards for your  generative AI applications.   Amazon Bedrock pricing   When you sign up for AWS, your AWS account is automatically signed up for all services in AWS,  including Amazon Bedrock. However, you are charged only for the services that you use.   To see your bill, go to the Billing and Cost Management Dashboard in the AWS Billing and Cost  Management console. To learn more about AWS account billing, see the AWS Billing User Guide. If  you have questions concerning AWS billing and AWS accounts, contact AWS Support.   With Amazon Bedrock, you pay to run inference on any of the third-party foundation models.  Pricing is based on the volume of input tokens and output tokens, and on whether you have  purchased provisioned throughput for the model. For more information, see the Model providers page in the Amazon Bedrock console. For each model, pricing is listed following the model version.  For more information about purchasing Provisioned Throughput, see Provisioned Throughput for  Amazon Bedrock.   For more information, see Amazon Bedrock Pricing."
					},
					"location": {
						"s3Location": {
							"uri": "s3://bucket/bedrock/bedrock-ug.pdf"
						},
						"type": "S3"
					},
					"metadata": {
						"x-amz-bedrock-kb-source-uri": "s3://bucket/bedrock/bedrock-ug.pdf",
						"x-amz-bedrock-kb-data-source-id": "XXXXXXXXXX"
					}
				}
			]
		}
	],
	"guardrailAction": "NONE",
	"output": {
		"text": "Amazon Bedrockは、高性能な基盤モデル(FMs)を提供する完全マネージド型サービスです。主要なAIスタートアップやAmazonから、統一されたAPIを通じて利用可能な幅広い基盤モデルを選択できます。セキュリティ、プライバシー、責任あるAIを備えた生成AIアプリケーションを構築するための幅広い機能を提供しています。\n\nBedrockの主な特徴には以下が含まれます:\n\n1. 様々な基盤モデルの実験と評価が可能\n2. 独自のデータを使用したモデルのカスタマイズ(ファインチューニングやRAGなど)\n3. エンタープライズシステムやデータソースを使用したタスク実行エージェントの構築\n4. サーバーレス体験による迅速な開始と容易な統合\n5. インフラストラクチャ管理が不要 Amazon Bedrockの利用方法については、以下のポイントが重要です:\n\n1. AWSアカウントを持っていれば、自動的にAmazon Bedrockを含むすべてのサービスにサインアップされます。\n2. 料金は使用したサービスに対してのみ発生します。\n3. 第三者の基盤モデルを使用して推論を実行する際に課金されます。\n4. 料金は入力トークンと出力トークンの量、およびモデルのプロビジョニングされたスループットの購入有無に基づいて決定されます。\n5. 各モデルの価格は、Amazon Bedrockコンソールの「Model providers」ページで確認できます。\n\n詳細な料金情報については、Amazon Bedrock Pricingページを参照することをお勧めします。"
	},
	"sessionId": "XXXX"
}

まとめ

以上、「Knowledge bases for Amazon Bedrock でクエリ分解を試してみる」でした。

ログからクエリ分解の仕組みが読み取れるのは非常におもしろいですよね。(私だけではないことを祈ってます。)

このブログがどなたかの参考になれば幸いです。

AWS 事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.